package com.imooc.service;

import com.imooc.pojo.Items;
import com.imooc.pojo.ItemsImg;
import com.imooc.pojo.ItemsParam;
import com.imooc.pojo.ItemsSpec;
import com.imooc.pojo.vo.CommentLevelCountsVO;
import com.imooc.pojo.vo.ItemCommentVO;
import com.imooc.pojo.vo.ShopcartVO;
import imooc.utils.PagedGridResult;

import java.util.List;

/**
 * @author cg.hu
 * @version 1.0.0
 * @date 2021/1/25 16:58
 * @description
 * @since 1.0.0
 */
public interface ItemService {

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/25 17:10
     * @description    根据商品ID，查询详情
     **/
    public Items queryItemById(String itemId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/26 8:33
     * @description    根据商品ID，查询图片列表
     **/
    public List<ItemsImg> queryItemImgList(String itemId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/26 8:35
     * @description    根据商品ID，查询商品规格列表
     **/
    public List<ItemsSpec> queryItemSpecList(String itemId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/26 8:36
     * @description    根据商品ID，查询商品参数
     **/
    public ItemsParam queryItemParam(String itemId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/26 14:46
     * @description    根据商品ID,查询商品评价等级数量
     **/
    public CommentLevelCountsVO queryCommentCounts(String itemId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/27 9:02
     * @description    分页查询评论信息
     **/
    public PagedGridResult queryPagedComment(String itemId, Integer level, Integer page, Integer pageSize) throws Exception;
    
    /**
     * @author cg.hu 
     * @version 2.6      
     * @date 2021/1/27 14:31      
     * @description    搜索商品
     **/
    public PagedGridResult searchItems(String keywords, String sort, Integer page, Integer pageSize) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/28 8:50
     * @description    根据商品分类搜索商品
     **/
    public PagedGridResult searchItemsByThirdCat(String catId, String sort, Integer page, Integer pageSize) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/1/28 11:26
     * @description    根据规格 ids 查询最新的购物车中商品数据
     **/
    public List<ShopcartVO> queryItemsBySpecIds(String specIds) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/2/16 20:20
     * @description    根据规格商品规格ID，获取商品规格对象
     **/
    public ItemsSpec queryItemSpecById(String specId) throws Exception;

    /**
     * @author cg.hu
     * @version 2.6
     * @date 2021/2/16 21:02
     * @description    根据商品ID，获取商品主图
     **/
    public String queryItemMainImgById(String itemId) throws Exception;
}
